package com.springcloud.tools.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Range;

import java.io.Serializable;
import java.util.Date;

/**
 * 角色信息表
 *
 * @author fuc
 * @since 2020-06-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "sys_role")
public class SysRole extends Model<SysRole> {

  private static final long serialVersionUID = 1L;

  /** 角色ID */
  @TableId(value = "role_id", type = IdType.AUTO)
  private Long roleId;

  /** 角色名称 */
  @TableField("role_name")
  private String roleName;

  /** 角色描述 */
  @TableField("role_desc")
  private String roleDesc;

  /** 角色状态（0停用 1 启用） */
  private Integer status;

  /** 删除标记（0 未删除 1已删除） */
  @TableField(value = "delete_flag")
  @Range(min = 0, max = 1, message = "删除标记（0 未删除 1已删除）")
  private Integer deleteFlag;

  /** 创建时间 */
  @TableField("create_time")
  private Date createTime;

  /** 更新时间 */
  @TableField("update_time")
  private Date updateTime;

  /** 备注 */
  private String remark;

  @Override
  protected Serializable pkVal() {
    return this.roleId;
  }
}
